package com.sdy.usercenter.biz.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.sdy.common.model.BaseModel;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author zzq
 * @since 2019-06-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class SysLog extends BaseModel {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId
    private Integer id;

    /**
     * 操作用户id
     */
    private Integer userId;

    /**
     * 组织机构id
     */
    private Integer deptId;

    /**
     * IP地址
     */
    private String ip;

    /**
     * 操作内容
     */
    private String content;

    /**
     * 操作类型
0：登陆
1：新增用户
2：开户
3：用户基本信息编辑
4：用户资源编辑
5：新增角色
6：编辑角色
7:角色权限编辑
8：角色关联用户编辑
9：新增菜单
10：菜单编辑
11：日志查询
     */
    private Integer type;

    /**
     * 操作时间
     */
    @JsonFormat(pattern = DATETIME_FORMAT)
    private Date opTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = DATETIME_FORMAT)
    private Date createTime;

    @TableField(exist = false)
    private String userName;

    @TableField(exist = false)
    private String deptName;

    /**
     * 消息类型
     */
    public enum LogType {
        /**
         * 登录
         */
        LOGIN(0),
        /**
         * 新增用户
         */
        ADD_USER(1),
        /**
         * 开户
         */
        OPEN_ACCOUNT(2),
        /**
         * 用户基本信息编辑
         */
        EDIT_USER(3),
        /**
         * 用户资源编辑
         */
        EDIT_USER_RES(4),
        /**
         * 新增角色
         */
        ADD_ROLE(5),
        /**
         * 编辑角色
         */
        EDIT_ROLE(6),
        /**
         * 角色权限编辑
         */
        EDIT_ROLE_AUTH(7),
        /**
         * 角色关联用户编辑
         */
        EDIT_ROLE_USER(8),
        /**
         * 新增菜单
         */
        ADD_RES(9),
        /**
         * 菜单编辑
         */
        EDIT_RES(10),
        /**
         * 日志查询
         */
        QUERY_LOG(11),
        /**
         * 增加资源权限
         */
        APP_AUTH_ADD(12),
        /**
         * 删除资源权限
         */
        APP_AUTH_DEL(13);
        private Integer type;
        LogType(Integer type) {
            this.type = type;
        }
        public Integer getType() {
            return type;
        }
        public String getTypeS() {
            return type.toString();
        }
    }
}
